package Learn;

import java.util.Arrays;
import java.util.Comparator;

public class Arrays182 {


    //toString  转换成字符串

    //binarySearch 二分查找 如果存在返回索引 不存在返回-应该在数组中的位置-1 ，-1是为了避免应该在0时，-0和0相同无法区分
    //正常返回和索引不存在的返回


    //copyOf
    //拷贝参数一老数组 参数二新数组的长度
    // 小于部分拷贝 等于完全拷贝 大于补足默认初始值

    //copyOfRange
    //指定范围 包头不包尾

    //fill  填充数组

    //sort(arr) 一个参数的底层是快速排序
    //默认升序排列

    //sort(arr,规则) 两个参数的底层调用了二分查找+插入排序的方式实现
    public static void main(String[] args) {
        Integer []arr={1,3,4,6,7,8,5,2,9,10};


        //第二个参数是一个接口 需要传接口的实现类对象 而我们只用一次 所以用匿名内部类的方式传参即可

        //o1是无序序列中的每一个元素 o2是有序序列中的元素
        //底层中将o1用二分查找的形式插入到该在的位置
        //而哦o1与二分查找时的元素进行比较的方式就是compare
        //如果返回值是大于0的那么就跟后面的数据进行比较
        //反之亦然
        //如果等于0那么也跟后面的数据进行比较（相当于插入在相等的元素后面）


        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });

    }

}
